1. Field
The present disclosure relates generally to providing products, such as web applications, to users. More particularly, the present disclosure relates to a method and apparatus for dynamically composing products in real-time using capsules that are organized based on an inheritance structure.
2. Background
With the marketplace for software products becoming more and more global, creating and managing customized software products is becoming increasingly difficult and time-consuming. For example, a global business entity may desire to use a single human resources application to manage human resources in all offices in various countries. However, it may be desirable to customize the graphical user interface of that human resources application for users based on country of residence, country of employment, or some type of other country-based factor.
With some currently available applications, different versions of the human resource application may need to be deployed for the users residing in different countries. For example, when a user in the United States wants to access the human resources application, a full copy of a United States version of the human resources application may be deployed. When a user in a different country, such as Spain, wants to access the human resources application, another full copy of a Spain version of the human resources application may be deployed. The variations between these two versions of the human resources application may need to be precomputed.
Precomputing, or predefining, the various versions of the human resources application needed for different situations may be, in some cases, preemptively or prohibitively difficult, time-consuming, labor-intensive, expensive, or some combination thereof. Further, the processing resources, such as memory space and power, required to manage all of these different versions of the human resources application may be greater than desired. Therefore, it would be desirable to have a method and apparatus that take into account at least some of the issues discussed above, as well as other possible issues.